package org.me.service.impl;

import java.io.Serializable;
import java.util.List;
import org.me.data.GenericDaoHibernate;
import org.me.entityBeans.TPaises;
import org.me.service.PaisServiceHibernate;

public class PaisServiceHibernateImpl implements PaisServiceHibernate{
    
    private GenericDaoHibernate genericDaoHibernateImpl;

    public GenericDaoHibernate getGenericDaoHibernateImpl() {
        return genericDaoHibernateImpl;
    }

    public void setGenericDaoHibernateImpl(GenericDaoHibernate genericDaoHibernateImpl) {
        this.genericDaoHibernateImpl = genericDaoHibernateImpl;
    }  
   
    //Graba o actualiza un Pais x su Id, es de tipo TRANSACTIONAL -> definido en la interfaz
    @Override
    public void saveOrUpdatePais(TPaises pais) {
        this.getGenericDaoHibernateImpl().saveOrUpdate(pais);
    }
    
    //Borra un Pais x su Id
    @Override
    public String deletePais(TPaises pais) {
        return this.getGenericDaoHibernateImpl().delete(pais);
    }
    
    //Trae todos los paises ordenados x Id     
    @Override
    public List<TPaises> findAllPaises() {
        return this.getGenericDaoHibernateImpl().findByOnlyNamedQuery( "TPaises.findAll");
    }    
    
    //Trae el pais que coincida con el nombre
    @Override
    public List<TPaises> findByNamePais(String nomPais) {          
        return this.getGenericDaoHibernateImpl().findByCriterio( "TPaises.findByVNombrePais", "vNombrePais", nomPais );
    }
    
    //Trae el pais que coincida con el id 
    @Override
    public TPaises findByIdPais(Serializable id) {
        //return (TPaises)this.getGenericDaoHibernateImpl().findById(TPaises.class, id);
        return  this.getGenericDaoHibernateImpl().findById(TPaises.class, id);
    }
    
    //Trae el pais con sus Departamentos asociados que coincida con el idPais
    @Override
    public List<TPaises> findPaisConDptos(Short idPais)
    {
        return this.getGenericDaoHibernateImpl().findByCriterio( "TPaises.findPaisConDptos", "nIdPaisPk", idPais );
    }
    
    //Trae todos los paises excepto el idPais pasado como parametro
    @Override
    public List<TPaises> findPaises1(Short idPais)
    {
        return this.getGenericDaoHibernateImpl().findByCriterio( "TPaises.findPaises1", "nIdPaisPk", idPais );
    }
    
    
    

  
    
    
    
    
            
    
    
    
}
